home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr35 / annex10b.zip / ANNEX.DOC < prev    next >
Text File  |  1993-01-04  |  25KB  |  504 lines

  1.                                                                    1/04/93
  2.                                 Annex 1.0b 
  3.  
  4.                          Written by Jason Bassford 
  5.  
  6.  
  7.  
  8.                              - Introduction -
  9.  
  10.    Annex will interpret the message header information produced by OLX and
  11. any other compatible mail reader (not that I know of any - if you do I'd
  12. appreciate knowing about it) and manipulate it in just about any way that
  13. you wish.  Such information is further broken down into such specific
  14. things as the 24 and 12 hour time, whether it is "am" or "pm", just what
  15. century it is (something that will come in handy should a variation of
  16. Annex still be in use 8 years from now...) and even the proper "suffix" to
  17. use with the day of the month (1st, 2nd, 3rd, etc.).  This manipulation
  18. will allow you to configure whatever header and footers you might want to
  19. appear in your messages.
  20.    You will be able to determine how Annex will interpret a person's name
  21. in the header that it uses.  You may want it to be all in Caps or only the
  22. first letter, or you may even want to change it completely so that
  23. whenever a certain name appears the header reads, "My friend was talking
  24. to me about..." instead of "Michael Smith was talking to Jason Bassford
  25. about..."  Every time Annex encounters a name that its not familiar with
  26. it will stop and prompt you to enter what you would like it to use in
  27. place of it.  Once it knows what you want it to use it will then use that
  28. "association" automatically.
  29.    In addition to the standard forms of headers, Annex also supports
  30. special Internet headers that are sometimes required by BBSs in order to
  31. properly send Internet mail.  In this way you can Reply to a message in
  32. OLX and never worry about having to enter their Internet address before
  33. writing your message to them.  (Lord knows, before I wrote Annex I more
  34. than once had Internet mail bounced back to me because I'd forgotten to
  35. include the recipient's Internet address in the body of a message...)
  36.    (Note that both normal and Internet headers will not be available if the
  37. message you are writing is *new*.  Headers are only possible if you are
  38. replying to an existing message for which OLX has the necessary
  39. information to pass on to Annex.  Footers, on the other hand, are always
  40. available.)
  41.    The footer section of Annex lets you control the format that you wish
  42. to use for your taglines, and any other additional "footer" messages you
  43. might wish to include, such as placing your signature before the tearline
  44. in the actual message itself.  The one thing to be aware of about Annex's
  45. tagline manipulation is that the taglines it uses are selected at random
  46. by the program.  If you want to get a *specific* tagline to be used with
  47. your message there is a fairly simple method to do so (which is described
  48. at the end of this document) but it is not as simple as it would be with a
  49. program designed solely to manage your taglines.  If what you are
  50. interested in is simply a tagline manager then Annex 1.0 probably isn't
  51. going to be what you're looking for.
  52.  
  53.  
  54.  
  55.                               - Background -
  56.  
  57.    This is an OLX/SLMR header and footer utility that I have been working
  58. with, on and off, since the Summer of '92.  It all started with a friend
  59. of mine who innocently suggested that I create a small header utility for
  60. him to use with his OLX messages.  Once I started he kept suggesting more
  61. features he'd like to see it have, and I also came up with some of my own
  62. ideas.  When the header portion of Annex was finished I put the project
  63. aside for a while as I was busy with other things and the reason it had
  64. been created in the first place was solely as a header utility.  
  65.    Then I happened to order OLX 3.0 along with the new Qmodem Pro from
  66. Mustang Software.  While I'm quite happy with both products, I was
  67. dismayed to realize that the tagline signature OLX used was "QMPro 1.0
  68. 41-4932".  Not only did I not want the serial number in my taglines (as it
  69. takes up too much space for my actual tags to comfortably fit) but I also
  70. wanted it to instead display "OLX" - which program is the real reason I'd
  71. ordered the upgrade package in the first place.  So after trying
  72. unsuccessfully to sway the MSI staff to send me a "patch" of some sort to
  73. address these problems, I decided to just go ahead and write my own
  74. footer/tagline utility that would let me do what I wanted.  In short, I
  75. picked up my earlier work on Annex once more.
  76.  
  77.  
  78.  
  79.                                - Licensing -
  80.  
  81.    There are several things that you should note about this utility. First
  82. of all, and probably most important right now, is that I am distributing
  83. this as Shareware.  Yet, is not crippled in any way and, contrary to the
  84. normal concept of Shareware it isn't in any way different from the
  85. registered version.  In fact, there *is* no "registered" version per se -
  86. the program that exists here is exactly what I am currently working with
  87. on my own machine.  Why then do I call it Shareware?  Simply because I
  88. will put "registered users" on a list for the purposes of any future
  89. releases that I might distribute.  I will take note of any registered
  90. user's comments and suggestions for future versions, and offer any support
  91. that is necessary in order to get it running smoothly.  If it becomes
  92. apparent that there is a bug in the program that requires me to distribute
  93. a maintenance release (while I've tested it extensively myself there is
  94. always this possibility with different machines) I will mail this directly
  95. to everyone on my list as soon as possible.  Anyone wishing to register
  96. Annex need only send me a note informing me of this.  Other than the cost
  97. of the postage stamp <grin> this process is free.
  98.    Also, I do *not* distribute this along with my permission for the
  99. program to be rewritten or altered in any way.  It is to be used *as is*,
  100. and any changes to it have to come through me.  Additionally, if this is
  101. distributed to a BBS (and I *do* encourage this) it should contain all of
  102. the files that are listed later in the "Installation" section.  In other
  103. words, it must be uploaded just as you downloaded it.  I'm not familiar
  104. with the legalities involved here, however I can tell you that at the very
  105. least I would be considerably "upset" if I find these conditions of use to
  106. be ignored by someone.  I'm not sure just what action I would take,
  107. although it would most likely not be pleasant. <grin>
  108.  
  109.  
  110.  
  111.                                 - History -
  112.  
  113. Annex1.0a:
  114.  
  115.    This is a maintenance release for Annex 1.0 which I discovered, much to
  116. my horror after I had uploaded it to various BBSs, contained some out of
  117. date code, resulting in some program bugs.  Please accept my apologies.
  118.  
  119.  
  120. Annex1.0b:
  121.  
  122.    This release allows for the configurable placement of footer text
  123. before as well as after the message's tearline.  This will allow you to
  124. place custom signatures in the body of your message, followed by a
  125. tearline and then whatever tagline you want.
  126.  
  127.  
  128.  
  129.                              - Installation -
  130.  
  131.    The following files should be included in annex10.zip:
  132.  
  133. annex.doc   -  Annex documentation.  You're reading it.  (I always thought
  134.                that this entry was pretty self-evident. <grin>)
  135. annex.bat   -  A sample batch file showing how to implement Annex.  It
  136.                will have to be modified to suit your text editor and other
  137.                setup parameters.
  138. header.exe  -  The program that produces header text in your messages.
  139. header.txt  -  The text file controlling what the header text will look
  140.                like. 
  141. header.net  -  The text file determining the format of any Internet header
  142.                message. 
  143. footer.exe  -  The program that controls footer text.
  144. footer.txt  -  The text file controlling what the footer text will look
  145.                like.
  146.  
  147.    Copy all of these files to your OLX directory (although the program
  148. will work just fine without annex.doc, you might want to keep it for
  149. reference anyway).  To get Annex to work you have to tell OLX to run a
  150. batch file in the Editor section of the Options (or Configuration) menu. 
  151. This batch file will first run the header program, then whatever text
  152. editor you use, and finally the footer program.  I have called the batch
  153. file that I use "annex.bat", although you can always name yours something
  154. else if you wish.  This is what my OLX setup looks like:
  155.  
  156. Editor command line    c:\olx\annex
  157.  
  158. Quoted original message file REPLY.MSG
  159. File to take reply text from REPLY.MSG
  160.  
  161.    And the following is what my included "annex.bat" file contains in order
  162. to run Annex with OLX 3.0:
  163.  
  164. @echo off
  165. cls      
  166. cd \olx  
  167. header %1
  168. b %1     
  169. footer tagline.olx %1
  170.  
  171.    Note a couple of things here.  First of all the batch file changes
  172. directories to the main OLX directory (in which the Annex files are to be
  173. found).  If the directory in use is not the OLX directory Annex will not
  174. work properly.  Secondly, make sure that you edit the OLX pathnames
  175. appropriately, as according to your own setup.  The "b %1" line simply runs
  176. my text editor - you should replace this with whatever commands are
  177. necessary to run your own editor.  Lastly, this should work as-is with
  178. earlier version of OLX also.  The only difference I would make if I
  179. weren't using 3.0 is that I would add a line to run an external spell
  180. checker (mine used to be "spell %1") after the last line.
  181.    You must configure OLX to include its own header in the quoted reply in
  182. the Replies section of the Options (Configuration) menu.  You must also
  183. turn OLX's own taglining off by setting the Enable Taglines to "Off" in
  184. the same section.
  185.  
  186.  
  187.  
  188.                               - Using Annex -
  189.  
  190.    As the program runs it will create a file called "header.inf" which
  191. contains a list of names and the associations that you assign to them.  At
  192. first, Annex will keep interrupting itself before writing the header
  193. information and prompt you to enter how you want all of the new names not
  194. found in this file to appear in your replies.  As your list of names grows
  195. though this will happen less often, as it finds fewer new names, and it
  196. will quickly be mostly invisible.
  197.  
  198.  
  199.  
  200.                           - The Header Program -
  201.  
  202.    If it finds a name that is not in the "header.inf" file, it will tell
  203. you this and give you two choices. One of which is a format of the name in
  204. which the first letter of each "word" is in Capital and all others are in
  205. small case.  The second allows you to enter a different format than this
  206. "default" if you so wish.  Say that the name it is looking at is "MICHAEL
  207. SMITH". You would see the following:
  208.  
  209.  
  210. Name not found in data file...
  211.  
  212.  
  213.   1 - Michael Smith
  214.  
  215.   2 - Custom format / Internet header.
  216.  
  217.  
  218. Please enter the desired format for future use:
  219.  
  220.  
  221.    The first option is self-explanatory and what I use almost all the
  222. time.  However, say that Michael prefers being referred to as "Mike". 
  223. If you want it to automatically put "This message was from Mike..."
  224. then select the second option.  You will now see a screen that looks
  225. like this:
  226.  
  227.  
  228. The original name is 'MICHAEL SMITH'.
  229.  
  230.  
  231.   Enter the new name:
  232.  
  233.     Internet address:
  234.  
  235.  
  236.    (The cursor will be right after the "Enter the new name:" line.) 
  237. Enter "Mike Smith" on the first line.  When you reach the second line
  238. it will change to read:
  239.  
  240.     Internet address: [None]
  241.   
  242.    Simply hit <Return>, as we are not dealing with Internet E-Mail in this
  243. example.  From then on when Annex encounters the name, it will replace it
  244. with your selection.  If you later decide that you want to change an
  245. association just load the "header.inf" file into your text editor and edit
  246. it manually - it is sorted alphabetically by first name.  If editing an
  247. "Internet" name, be sure to follow the format that the program uses for
  248. those.
  249.  
  250.  
  251.  
  252.                       - Internet E-Mail and Headers -
  253.  
  254.    I don't know if you have dealt with this before or not.  It's private
  255. mail that you send to people at certain "Internet addresses."  For
  256. instance, my own Internet address is "jason.bassford@rose.com".  If I were
  257. to send you Internet E-Mail, OLX would display it as being "From:
  258. JASON.BASSFORD@ROSE.COM".  This, obviously, is not what you want put in
  259. the header line.  So, when prompted, you would select the second option
  260. and make my new name "Jason Bassford".  However, if you wanted to send
  261. Internet E-Mail back to me (as you probably would) the procedure for this
  262. is a bit more complex.  What I have to do on *my* BBS (and I think it's
  263. similar for other bulletin boards) is to make the To: line in OLX read
  264. "USENET GATEWAY".  Then, in the body of the message, my first line is
  265. "To: " followed immediately by the person's Internet address, and then a
  266. blank line.  On the third line the actual message can start.
  267.    So, if you want to send me Internet E-Mail, rather than just hitting
  268. <Return> to go past the "Internet address: [None]" line, you would enter
  269. my address ("jason.bassford@rose.com").  Header will then create *two*
  270. headers.  One for Internet and the other for the normal message.  In this
  271. case it would read something like this:
  272.  
  273.  
  274. To: jason.bassford@rose.com
  275.  
  276. The following was said by Jason Bassford...
  277.  
  278.    
  279.    Just as you may alter the header text by changing the file "header.txt"
  280. you may alter the Internet header text (I wasn't sure if it always
  281. followed the "To: address" format so I allowed for it to be changed too)
  282. by modifying the file "header.net".
  283.    Note that you may have more than one entry for the same person in
  284. certain circumstances.  For instance, I have a friend who writes to me
  285. both via Internet and on some network Conferences.  Hence, I have an
  286. association for "GLEN CAMPBELL" as well as for "GLEN.CAMPBELL@ROSE.
  287. COM".  Remember, it's the *name* not the person that the program
  288. recognizes.
  289.  
  290.    (Special note:  Due to a programming "glitch" that I'm aware of there is
  291. a potential problem editing the Internet address.  You cannot change the
  292. *first* character of the address directly.  Say, for example, that I had
  293. meant to type "glen" but instead typed "flen".  In order to correct such a
  294. mistake, you have to delete everything after the first character (in this
  295. case only the "f" would remain) and then hit <Enter> *as if* this were
  296. correct.  The program will return to it's previous state and prompt you
  297. again for the correct address.)   
  298.    
  299.  
  300.  
  301.                     - Creating Header and Footer Text -
  302.  
  303.    Header and footer text is generated by editing text files (header.txt
  304. for headers, header.inf for Internet headers, and footer.txt for footers).
  305. The text in these files will be read and placed in your messages at the
  306. appropriate places. Things like the name of the person the message is
  307. from, the date it was sent, or, as in the case of a footer, the date the
  308. reply was written, are represented by "variables", as explained below. 
  309. Right now header text will word-wrap at 70 characters.  I haven't yet set
  310. this up to allow the user to change this value.  (If any interest is
  311. expressed in having this value changed, I will send a "patch" to any
  312. *registered* user that requests it.)  So, if a word goes past 70
  313. characters it will jump down to the next line.  I set it at 70 (as I have
  314. my text editor for all E-Mail messages) so that it is easily quotable, not
  315. going past the right 80 column margin.  Footer text will *not* word wrap. 
  316. Due to it's nature this would not be advantageous in my opinion (although
  317. I'd be happy to hear any comments if you feel otherwise).  So it is up to
  318. you to monitor the length of individual footer lines.
  319.  
  320.  
  321.  
  322.                       - Header and Footer Variables -
  323.  
  324.    Even though the text may appear on separate lines in the text files it
  325. will *not* be treated as being as such when read in as a header or footer.
  326. For instance the following
  327.  
  328. On
  329. three
  330. lines.
  331.   
  332. would appear on one line only: "On three lines."  To make it appear on
  333. three separate lines you must explicitly put in carriage returns.  To tell
  334. Annex to put in a carriage return you would put a carriage return
  335. "variable" into the text.  All variables are enclosed by "|" characters
  336. (located above the "\" key).  So, to get the above on three separate lines
  337. our text file would look like this:
  338.  
  339. On|CR|          
  340. three|CR|      
  341. lines.
  342.  
  343.    And, if this is header text, to get the actual message to appear
  344. following it and a blank line, you would need to add a "|CR|" both to the
  345. end of the last line as well as another one after that. (Also note that I
  346. could have just as easily written all of the above on one line
  347. (On|CR|three|CR|lines.) and it still would have come out as three lines in
  348. the end. It's purely for the sake of readability that I would choose the
  349. first format.)
  350.    If for some reason you wish to actually include a "|" character in the
  351. text of the message you can do so by using two in a row ("||").  Also, if
  352. you do not use a "legal" variable it will appear as text (if you made a
  353. typing mistake and used "|C|", forgetting the "R", it would not issue a
  354. carriage return but, for example, print "three|C|lines.").
  355.  
  356.    Here are the variables that you can use:
  357.  
  358. |FROM|        Header text only.
  359. |TO|          Header text only.
  360. |SUBJECT|     Header text only.
  361. |MONTH|       Numerical value (December is "1").
  362. |MONTH2|      As above but two digits (December is "01").
  363. |LMONTH|      The full month name ("December").
  364. |SMONTH|      The shortened month name ("Dec").
  365. |DAY|         Numerical value (January "21"st).
  366. |DAY2|        As above but two digits ("9" becomes "09").
  367. |SUFFIX|      Appropriate termination for the numeric day ("21" "st").
  368. |LDAY|        The full day name ("Wednesday").
  369. |SDAY|        The shortened day name ("Wed").
  370. |CENTURY|     The "first part" of the year (1992 is "19").
  371. |YEAR|        The "second part" of the year (1992 is "92").
  372. |TIME24|      The 24 hour time.
  373. |TIME12|      The 12 hour time ("13:03" becomes "1:03").
  374. |TIME12A|     As above but "13:03" would become "01:03").
  375. |HOUR|        The time "period" (13:03 is "pm").
  376. |BBS|         The name of *your* BBS.  Header text only.
  377. |CONFERENCE|  Header text only.
  378. |NUMBER|      The number of the message.  Header text only.
  379. |REFERENCE|   (These OLX variables are both included although I believe 
  380. |RECEIVED|    they will always read something to the affect of "None"
  381.               or "No", and I haven't figured out if they are worthwhile
  382.               yet or not!  Also, only useable in header text.)
  383.               
  384. |CR|          Carriage return.
  385. ||            Pipe ("|") character.
  386.  
  387. |ADDRESS|     Internet header text only.  Note that "header.net" can only
  388.               use this variable and the two special ones above.  All of the
  389.               rest have no special meaning for it.
  390. |TEARLINE|    Footer text only.
  391. |TAGLINE|     Footer text only.
  392.  
  393.  
  394.    Note: In the case of header text, time and date variables pertain to
  395.          when the quoted message was sent.  If used in footer text, then 
  396.          they will refer to when *your* message was written.
  397.  
  398.               
  399.    One last point.  The header.txt, header.net, and footer.txt files may
  400. be of any length.  The program interprets each text character one at a
  401. time and then moves on to the next.  You could include a header that was a
  402. copy of "War And Peace", or compose a similarly long "farewell" speech for
  403. your footer/tagline, if you wished.  But I certainly wouldn't recommend
  404. it. <grin>
  405.  
  406.  
  407.  
  408.                        - Footer Text and Tearlines -
  409.  
  410.    Any lines of text that are written to you message *before* a tearline
  411. will be just as they appear in the footer.txt file, however this is not
  412. precisely true of text *following* a tearline.  Each line of such text
  413. will be automatically indented one space by the program so that it lines
  414. up properly with all other Net taglines that will be later appended.  This
  415. is not just for aesthetic reasons, but to guarantee that there are no Net
  416. "hiccouphs" due to improperly formatted tagline text.
  417.    Finally, the placement of a tearline in your message is not automatic. 
  418. If you want it to contain a tearline you must explicity enter a
  419. "|TEARLINE|" variable in the footer.txt file - make sure to also issue a
  420. carriage return ("|CR|") after that variable as well so that it will
  421. function properly as a tearline.  If you don't use the "|TEARLINE|"
  422. variable but instead decide to simply use "---", Annex will not interpret
  423. this properly as anything other than "meaningless" text for the purposes of
  424. indenting text afterwards as explained in the above paragraph.  Multiple
  425. tearlines *are* allowed by Annex if you write your footer.txt file to so
  426. indicate them, but they will serve no special function other than to most
  427. likely confuse the Net and some other users upset.  So I would recommend
  428. against using them.
  429.  
  430.  
  431.  
  432.              - Alternate Tagline Files and Specific Taglines -
  433.  
  434.    If you look at the command syntax for running footer.exe in the batch
  435. file you will note that it is different from that used with header.exe. 
  436. The latter requires only that you specify the name of the message text
  437. file.  Footer.exe however, *also* requires the name of the text file that
  438. contains your taglines.  Because of this it is possible to set it to a
  439. tagline file other than "taglines.olx".  There may be some reason that you
  440. *don't* want to use that filename and I thought it was silly to have Annex
  441. assume that you did.  To use a different tagline file just edit the
  442. "footer" line in the batch file controlling your message replies to
  443. reflect this change.
  444.    Similarly, it is possible to "force" Annex to append a specific
  445. tagline, even though it is not written to do so.  All you have to do is
  446. make sure that the tagline file that footer.exe is assigned contains only
  447. one tagline - the one you want.  Even given it's randomness, it would be
  448. hard pressed to come up with a number between 1 and 1 that didn't
  449. correspond to that tagline. <grin>  This requires shelling out to Dos from
  450. your OLX session.  Either copy your current tagline file to somewhere
  451. else, and then edit the original, or create a new file with only the
  452. tagline you want and edit your batch file so that footer.exe works with
  453. that one instead.  Both methods require some work, but it's not that big a
  454. hassle if you don't use specific taglines often.  (Just remember to later
  455. change your setup back to what it was originally...)
  456.  
  457.  
  458.  
  459.                              - General Notes -
  460.  
  461.    There are a couple of things about the way Annex works that you might
  462. like to know - although I doubt you will ever come across them.  First of
  463. all, make sure that the *first* tagline in your tagline file is *not*
  464. simply a number.  Because OLX places a number at the beginning of its
  465. tagline file, I've had to make Annex ignore any such numbers if they exist
  466. so it doesn't think that *it* is one of your taglines.  
  467.    Secondly, all text after a line containing *only* "---" at the left
  468. margin will be deleted.  This is the only way I could have Annex handle
  469. tear-lines and footers.  If you enter a message and then re-edit it, Annex
  470. has to first delete the existing tear-line and footer information.  If it
  471. didn't, you'd end up with increasing numbers of tear- and taglines
  472. appended to the bottom of your re-edited messages.
  473.    However, I find it *very* unlikely that either of these specific
  474. conditions would be fulfilled in such a way as to cause you difficulties
  475. with your messages! <grin>  If not something to be "warned" about, then
  476. they are at least something you might find interesting to know, in terms
  477. of how the program functions internally.
  478.  
  479.  
  480.  
  481.                               - Conclusion -
  482.  
  483.    I hope that I have explained the various workings of the program
  484. satisfactorily.  As I say, this is still an "early" version - but, after
  485. getting several requests for it recently, I decided to go ahead and
  486. distribute it anyway.  Any comments or questions are welcome.  My mailing
  487. address until May 1992 is:
  488.  
  489. 59 Glenforest Rd.
  490. Toronto, Ontario
  491. Canada  M4N 1Z7
  492.  
  493. After that date I will be moving somewhere else when my lease expires
  494. <grin>, but mail can always reach me at:
  495.  
  496. 416 Keewatin Ave.
  497. Toronto, Ontario
  498. Canada M4P 2A5
  499.  
  500. My Internet address is "jason.bassford@rose.com".
  501.  
  502.    Thank you for taking the time to read this, and I hope you find the
  503. program useful!
  504.